/**
 */
package org.mro.grib.model.files.secondEdition.sections;

import java.nio.ByteBuffer;

import org.eclipse.emf.ecore.EObject;

/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Data Section</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.DataSection#getStartOffset <em>Start Offset</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.DataSection#getEndOffset <em>End Offset</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.DataSection#getLength <em>Length</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.sections.DataSection#getDataOffset <em>Data Offset</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getDataSection()
 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='latitude/longitude (or equidistant cylindrical, or Plate Carr\351e)' note_1_en='Basic angle of the initial production domain and subdivisions of this basic angle are provided to manage cases where\r\nthe recommended unit of 10\u20136 degrees is not applicable to describe the extreme longitudes and latitudes, and direction\r\nincrements. For these last six descriptors, the unit is equal to the ratio of the basic angle and the subdivisions number.\r\nFor ordinary cases, zero and missing values should be coded, equivalent to respective values of 1 and 106 (10\u20136 degrees\r\nunit).' note_2_en='For data on a quasi-regular grid, where all the rows or columns do not necessarily have the same number of grid points,\r\neither Ni (octets 31\u201334) or Nj (octets 35\u201338) and the corresponding Di (octets 64\u201367) or Dj (octets 68\u201371) shall be\r\ncoded with all bits set to 1 (missing). The actual number of points along each parallel or meridian shall be coded in\r\nthe octets immediately following the grid definition template (octets [xx+1]\u2013nn), as described in the description of the\r\ngrid definition section.' note_3_en='A quasi-regular grid is only defined for appropriate grid scanning modes. Either rows or columns, but not both\r\nsimultaneously, may have variable numbers of points or variable spacing. The first point in each row (column) shall be\r\npositioned at the meridian (parallel) indicated by octets 47\u201354. The grid points shall be evenly spaced in latitude\r\n(longitude).' note_4_en='A scaled value of radius of spherical Earth, or major or minor axis of oblate spheroid Earth is derived from applying the\r\nappropriate scale factor to the value expressed in metres.' note_5_en='It is recommended to use unsigned direction increments.'"
 * @generated
 */
public interface DataSection extends EObject {
	/**
	 * Returns the value of the '<em><b>Start Offset</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Start Offset</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Start Offset</em>' attribute.
	 * @see #setStartOffset(long)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getDataSection_StartOffset()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Start offset' description_en='Section start offset'"
	 * @generated
	 */
	long getStartOffset();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.DataSection#getStartOffset <em>Start Offset</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Start Offset</em>' attribute.
	 * @see #getStartOffset()
	 * @generated
	 */
	void setStartOffset(long value);

	/**
	 * Returns the value of the '<em><b>End Offset</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>End Offset</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>End Offset</em>' attribute.
	 * @see #setEndOffset(long)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getDataSection_EndOffset()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='End offset' description_en='Section end offset'"
	 * @generated
	 */
	long getEndOffset();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.DataSection#getEndOffset <em>End Offset</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>End Offset</em>' attribute.
	 * @see #getEndOffset()
	 * @generated
	 */
	void setEndOffset(long value);

	/**
	 * Returns the value of the '<em><b>Length</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Length</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Length</em>' attribute.
	 * @see #setLength(int)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getDataSection_Length()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Length' description_en='Section Length'"
	 * @generated
	 */
	int getLength();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.DataSection#getLength <em>Length</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Length</em>' attribute.
	 * @see #getLength()
	 * @generated
	 */
	void setLength(int value);

	/**
	 * Returns the value of the '<em><b>Data Offset</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Data Offset</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Data Offset</em>' attribute.
	 * @see #setDataOffset(long)
	 * @see org.mro.grib.model.files.secondEdition.sections.SectionsPackage#getDataSection_DataOffset()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Bit-map offset' description_en='Start offset of the data'"
	 * @generated
	 */
	long getDataOffset();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.sections.DataSection#getDataOffset <em>Data Offset</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Data Offset</em>' attribute.
	 * @see #getDataOffset()
	 * @generated
	 */
	void setDataOffset(long value);

	/**
	 * 
	 * @param buffer
	 */
	void initialise(ByteBuffer buffer);
	
} // DataSection
